Function calling is a way of life.
every function is a closure. pointer to current closure is passed in ENV unless it isn't (in local call may be elsewhere).
The description of the representation of functions and the function calling conventions is a large part of the VM description, since: Function calling is one of the most complicated facilities provided by the VM.
Everything that happens, happens in a function, so all parts of the system tend to get dragged in.
Aspects of function call: Control Environment CONT, ENV Argument/value passing Argument/value count dispatching